/**
 * @Copyright:Copyright (c) 2007 - 2023
 * 
 */
package com.tengtong.commons.collections;

import java.util.LinkedHashMap;
import java.util.Map;

import com.tengtong.commons.json.Json;

/**
 * Map 工具
 *
 * @author lin_jinming
 * @since: v1.0
 */
public class MapUtils {

    /**
     * 创建一个 LinkedHashMap
     *
     * @param <K>
     * @param <V>
     * @return
     */
    public final static <K, V> LinkedHashMap<K, V> newLinkedHashMap(){
        return new LinkedHashMap<>();
    }

    /**
     * 转成 LinkedHashMap，无法转返回 null
     * @param o
     * @return
     */
    @SuppressWarnings("unchecked")
    public static Map<String, Object> asLinkedMap(Object o) {
        if(o instanceof Map m) {
            return (Map<String, Object>)m;
        }
        
        if(o instanceof Json json) {
            return json.toMap();
        }
        
        return null;
    }

    /**
     * 非空判断
     *
     * @param map
     * @return
     */
    public static <K, V> boolean notEmpty(Map<K, V> map) {
        return map != null && !map.isEmpty();
    }
}
